package com.catering.service.impl;

import com.catering.mapper.LoginMapper;
import com.catering.pojo.DEmployeeUser;
import com.catering.pojo.Employee;
import com.catering.service.LoginService;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.UUID;

@Service
public class LoginServiceImpl implements LoginService {

    @Resource
    LoginMapper loginMapper;


    @Override
    public DEmployeeUser login(String username, String password) {
        return loginMapper.login(username,password);
    }

    @Override
    public DEmployeeUser register(String username, String password, String phone) {
        if (username == null || password == null) {
            return null;
        }

        // 检查用户名是否已经存在
        DEmployeeUser existingUser = loginMapper.findByUsername(username);
        if (existingUser != null) {
            // 用户已注册，返回null或其他错误信息
            return null; // 或者抛出自定义异常，例如 throw new UsernameAlreadyExistsException("用户名已注册");
        }

        String slat = UUID.randomUUID().toString();
        int userID = (int) (Math.random() * 900000) + 100000;
        // 生成100000到999999之间的随机数
//        String pwd = DigestUtils.md5Hex(password + slat);

        DEmployeeUser dEmployeeUser = new DEmployeeUser();
        dEmployeeUser.setUsername(username);       // 必须设置
        dEmployeeUser.setPassword(password);           // 必须设置
        dEmployeeUser.setCreateTime(new Date());  // 必须设置
        dEmployeeUser.setUpdateTime(new Date());  // 必须设置
        dEmployeeUser.setUserID(userID);         // 必须设置
        if (phone != null && !phone.isEmpty()) { // 可选字段
            dEmployeeUser.setPhone(phone);
        }

        // 调用 MyBatis 的 save 方法
        loginMapper.save(dEmployeeUser);

        return dEmployeeUser;
    }
}
